package file;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;

//Reader用法
public class Demo6 {
    public static void main(String[] args) throws IOException {
        //FileReader构造方法,可以填写一个文件路径(绝对路径/相对路径都行,也可以填写一个构造好的File对象)
        //Reader reader = new FileReader("e:/test.txt");//抽象类
        //抛出异常,或者return,这里的close就执行不到了
        /*try {

        }finally {
            reader.close();//这个操作非常重要,释放必要的资源
            //一旦一直打开文件,而不去关闭不用的文件,文件描述符表就会被占满,后续就无法继续打开新的文件
        }*/


        //使用try with resources是更好的解决方案
        try(Reader reader = new FileReader("e:/test.txt")) {
            //try代码块执行完毕,会自动调用到close方法,类似于synchronized
            while (true){
                char buf[] = new char[1024];//通过read,就会把本来一个空的数组,填充上内容
                int n = reader.read(buf);
                if (n == -1){
                    break;//读到文件末尾了
                }
                for (int i = 0; i< n; i++){
                    System.out.print(buf[i] + " ");
                }
            }
        }

    }
}
